Point of interest (poi) data positioning in image

ABSTRACT

Among other things, one or more techniques and/or systems are disclosed for positioning point-of-interest (POI) data in a planar panorama image, generated from a plurality of relatively sequential images. First POI data with a first geo-location and second POI data with a second geo-location can be received for the planar panorama image, and first and second data tags can be created that respectively comprise at least some of the first and second POI data. A cluster geo-location may be identified for the first and second data tags based at least upon the first and second geo-locations, and the first and second data tags can be clustered at the cluster geo-location in the planar panorama image. The first and second data tags can be re-clustered (e.g., moved around) and displayed at different locations within the planar panorama image in response to a zoom operation, for example.

BACKGROUND

Digital photography can allow for a sequence of images to be stitched orglued together to provide for a relatively seamless transition from oneimage to the next. Further, images, such as side-view images, can becollected while traveling along a route, such as a street. Stitchingthese side-view images together can provide a user experience oftravelling along the route, for example.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

A side or lateral-view of panoramic imagery may comprise a series ofimages (e.g., photo frames, video frames, etc.) stitched/glued togetherto form a somewhat seamless view of the imagery. This type of planerpanorama imagery typically displays many of the stitched together imagesat a same time. Currently, images stitched together in this manner canbe utilized in conjunction with digital mapping services, where, forexample, a user may view planer panorama-type images of a streetassociated with a map they may be viewing.

Point-of-interest (POI) information can be provided in a displaycomprising a planar panorama image, for example, where the POIinformation may be relatively co-located with the associated POI (e.g.,building, historic location, street, business, geo-location, city,etc.). However, when there are a large number of co-located geographicpoints, comprising POIs (e.g., businesses in an office building, storesin a mall, exhibits in a park or gallery, etc.), the visual display ofthe respective POI information may overlap and/or be obscured (by oneanother). Further, these types of planar panorama images often providelow accuracy for geo-locations associated with a POI; and when an imageis zoomed out, there may be a higher density of the POIs, resulting inconfusion to the viewer.

Accordingly, among other things, one or more techniques and/or systemsare disclosed that can provide for improved clustering of POIinformation or data in a planar panorama image, for example,particularly where there may be a high density of POIs at a location(e.g., when zoomed out). Respective POI geo-locations can be identifiedfor one or more POIs for a particular view of the planar panorama image,and a common, cluster geo-location may be identified, where appropriate.As an example, instead of locating respective POI data tags at theircorresponding (e.g., and possibly inaccurate, overlapping, etc.)geo-location, the tags may be clustered together (in an orderly manner)at the common, cluster geo-location. The planar panorama image may berendered with the appropriate one or more clusters of one or more datatags.

In one embodiment of positioning point-of-interest (POI) data in aplanar panorama image, first POI data that comprises a firstgeo-location, and second POI data that comprises a second geo-location,can be received. Further, a first data tag can be created, comprising atleast a portion of the first POI data, and a second data tag can becreated, comprising at least a portion of the second POI data.Additionally, the first data tag and second data tag can be clustered ata cluster geo-location in the planar panorama image. The clustergeo-location may be based at least upon the first geo-location and thesecond geo-location. It may be appreciated that, unless indicated to thecontrary, terms such as first, second and/or the like are merely usedherein as identifiers, and are not meant to imply an ordering, sequence,temporal aspect, finite or limited number or grouping of items, terms,etc., and thus are not meant to limit the scope of the instantapplication, including the appended claims, in such a manner.

To the accomplishment of the foregoing and related ends, the followingdescription and annexed drawings set forth certain illustrative aspectsand implementations. These are indicative of but a few of the variousways in which one or more aspects may be employed. Other aspects,advantages, and novel features of the disclosure will become apparentfrom the following detailed description when considered in conjunctionwith the annexed drawings.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating an exemplary method forpositioning point-of-interest data in a planar panorama image.

FIG. 2 is a flow diagram illustrating an example embodiment where one ormore portions of one or more techniques described herein may beimplemented.

FIG. 3 is a flow diagram illustrating an example embodiment where one ormore portions of one or more techniques described herein may beimplemented.

FIGS. 4A, 4B, and 4C illustrate example embodiments where one or moreportions of one or more techniques described herein may be implemented.

FIG. 5 illustrates an example embodiment where one or more portions ofone or more techniques described herein may be implemented.

FIG. 6 is a component diagram illustrating an exemplary system forpositioning point-of-interest data in a planar panorama image.

FIG. 7 is a component diagram illustrating an example embodiment whereone or more systems described herein may be implemented.

FIG. 8 is an illustration of an exemplary computer-readable mediumcomprising processor-executable instructions configured to embody one ormore of the provisions set forth herein.

FIG. 9 illustrates an exemplary computing environment wherein one ormore of the provisions set forth herein may be implemented.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are generally used to refer tolike elements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the claimed subject matter. It may beevident, however, that the claimed subject matter may be practicedwithout these specific details. In other instances, structures anddevices are shown in block diagram form in order to facilitatedescribing the claimed subject matter.

Among other things, as provided herein, a method may be devised thatprovides for rendering point-of-interest (POI) data or information for aplanar panorama image, where the POI data can be located in relativeproximity to an actual location (e.g., geo-location) of the POI in theimage. Further, when the image is altered, such as by zooming in and/orout, a location of the POI information may be appropriately adjusted toprovide a relatively accurate location of the POI. Additionally, the POIinformation for more than one POI may be clustered together when thezoom level of the image may otherwise cause the POI information tooverlap or obscure other data in the image.

FIG. 1 is a flow diagram illustrating an exemplary method 100 forpositioning point-of-interest (POI) data in a planar panorama image. Theexemplary method 100 begins at 102. At 104, first POI data, comprising afirst geo-location, and second POI data, comprising a secondgeo-location, are received. POI data can comprise, among other things,information related to a POI (e.g., an object, location, entity, etc.)in the image, such as an entity name (e.g., business name, etc.),information about an entity (e.g., contact information, hours ofoperation, etc.), updated information about an entity (e.g., onlineratings, user-submitted content, etc.), and/or updated information abouta location (e.g., online user-submitted information, weather updates,news, images, etc.), for example. Further, as an example, a geo-locationcan comprise data that identifies a location in the image, such ascoordinates (e.g., grid-coordinates, latitude/longitude, etc.), and/oran address.

At 106, a first data tag, comprising at least a portion of the first POIdata, and a second data tag, comprising at least a portion of the secondPOI data, are created. A data tag can comprise, for example, a piece ofinformation that can be included with a rendered version of the planarpanorama image. As one example, the data tag may comprise text of atleast a portion of the POI data (e.g., name, descriptor, etc.), an iconthat may be representative of at least a portion of POI data (e.g., abus-stop icon, logo, etc.), and/or an image (e.g., user-submitted imageand/or portion of video, etc.) that may be representative of at least aportion of POI data.

At 108, the first data tag and second data tag are clustered at acluster geo-location in the planar panorama image. The clustergeo-location is based at least upon the first geo-location and thesecond geo-location. As one example, both the first and second tags maynot properly fit (e.g., to provide a desired user experience) in theplaner panorama image display, due to a proximity of the first andsecond geo-locations to each other. For example, the first and secondgeo-locations may indicate adjacent businesses (e.g., or businesses in asame building) in the planar panorama image. However, in this example,due to a viewable (e.g., font) size of the data tags for the image, thefirst and second data tags may overlap, obscure, and/or otherwiseinterfere with one another if placed in proximity with their respectivegeo-locations (e.g., business locations). Therefore, in this example,the first and second data tags can be clustered together at the clustergeo-location where the cluster geo-location may comprise a locationbetween (e.g., or at) the first and second geo-locations.

Having clustered the first and second data tags in the planar panoramaimage, the exemplary method 100 ends at 110.

FIG. 2 is a flow diagram illustrating an example embodiment 200 whereone or more portions of one or more techniques described herein may beimplemented. At 202, image data 250 can be received, such as image dataindicative of a portion of a planar panorama image (e.g., a human-scale,street-level image of a portion of one side of a roadway). At 204, afirst zoom level 252 for the image data 250 may be received, such asindicating how much of the planar panorama image may be comprised withina viewing window rendered on a display. As one example, when the planarpanorama image is initially rendered for viewing on a display by a user,a particular portion of the image will be rendered that can beapportioned based on an initial (e.g., default) zoom level (e.g., thefirst zoom level), where the zoom level may dictate how much of theplanar panorama image is displayed, and/or how much detail is displayedin the planar panorama image.

At 206, a first view for the planar panorama image can be identified,for example, based on the received image data 250 and the receivedindication of the first zoom level 252. As an illustrative example, FIG.4A illustrates an example embodiment 400 where one or more portions ofone or more techniques described herein may be implemented. In thisexample 400, a planar panorama image 402 comprises street-side imagery404, such as buildings, landscape, etc. Further, in this example, theimage 402 may be zoomed to a level (e.g., the first zoom level) thatallows a large portion, amount, etc. of the imagery 404 to be includedin the image 402 (e.g., a wide-view of the street-level imagery).

Returning to FIG. 2, at 208, POI data 254 for the first view of theplanar panorama image (e.g., 402 of FIG. 4) can be received. Asdescribed above, POI data can comprise, among other things, an entityname, entity metadata, updated entity metadata, and/or update locationmetadata, as one example. Further, the POI data can comprise ageo-location, for example, where at least a portion of the POI data isassociated with the geo-location. For example, POI data comprising abusiness name may be associated with the geo-location for that business(e.g., an address, latitude, longitude, global positioning system (GPS)data, grid coordinate, etc.). In one embodiment, POI data available forentities and/or locations in the first view of the planar panorama imagemay be received.

At 210, one or more data tags can be created for the first view of theplanar panorama image. As described above, a data tag may comprise atleast a portion of the POI data, for example, such as text, an icon,and/or an image. As an illustrative example, in FIG. 4A, data tags cancomprise text, in this case, comprising a name of a business and/orlocation comprised in (e.g., or at least encompassed by) the planarpanorama image. As another illustrative example, FIG. 5 illustrates anexample embodiment 500 where one or more portions of one or moretechniques described herein may be implemented. In this exampleembodiment 500, a data tag 510 may comprise an icon and/or a graphic(e.g., bus-stop sign), another data tag 512 may comprise an image (e.g.,associated with an entity, captured at the location, etc.), and yetanother data tag 508, 514, 516, may comprise a type of text box.

In one embodiment, a display size of a data tag may be determined basedat least upon received POI data (e.g., 254 of FIG. 2). Further, in oneembodiment, the display size of the data tag may be determined based atleast upon a desired tag window size. As one example, a tag window maycomprise a portion of a display, comprising the planar panorama image,in which the data tag may be rendered. The desired tag window size maycomprise a dimension that accommodates the data tag, for example, in amanner that provides a desired display arrangement (e.g., taking up adesired portion of the display, in a desired font type and/or tag size,etc.).

Further, as one example, the POI data used in the data tag may helpdetermine the display size of the data tag. For example, text comprisinga number of characters may utilize one size, while an image may utilizeanother size. As an illustrative example, FIG. 4C illustrates an exampleembodiment 460 where one or more portions of one or more techniquesdescribed herein may be implemented. In this example 460, the data tagscomprise a larger display size than rendered in a previous display(e.g., 400 of FIG. 4A). The font type and/or font size, in this example,can help determine the display size for the data tag, where the largerfont may result in a larger display size for the tag (e.g., and asmaller font resulting in a smaller sized tag).

Returning to FIG. 2, at 212, a geo-location can be identified for therespective one or more data tags created for the first view of theplanar panorama image. As described above, the POI data 254 that is usedfor a data tag can also comprise a geo-location, for example. In oneembodiment, the geo-location information from the POI data 254 may becompared with location information associated with the planar panoramaimage (e.g., captured at image capture).

As one example, when the imagery (e.g., a collection of relativelysequential images) used for the planar panorama image is collected(e.g., while traveling along a roadway comprising the imagery),geo-location information may also be collected (e.g., addresses, GPSdata, etc.). In this example, the POI geo-location can be matched toimagery geo-location information to determine whether the POI may belocated in the first view of the planar panorama image. If the POIgeo-location associated with the data tag is located in the first viewof the planar panorama image, an appropriate (e.g., approximate)location in the imagery for the data tag may be identified.

At 214, one or more cluster geo-locations may be determined for the oneor more data tags. As one example, a cluster geo-location can comprise alocation where one or more data tags may be clustered for the planarpanorama image. In one embodiment, determining the cluster geo-locationcan comprise identifying a geo-location that is disposed between a firstgeo-location and a second geo-location, if the first geo-location andthe second geo-location comprise different geo-locations. As anillustrative example, in FIG. 4A, a cluster geo-location for Jan's andKen's 406C may be located approximately in the middle between Jan'sgeo-location and Ken's geo-location. In this example, because the datatags for Jan's and Ken's 406C may have (at least partially) overlapped,obscured, etc. one another (e.g., due to their respective display sizes)if placed at their respective geo-locations in the planar panorama image402, a cluster geo-location can be identified between the two.

In one embodiment, determining the cluster geo-location can compriseidentifying a geo-location disposed at the first geo-location and thesecond geo-location, if the first geo-location and the secondgeo-location comprise a same geo-location. That is, for example, anoffice building may comprise a plurality of businesses, respectivelycomprising a same geo-location (e.g., address, GPS coordinate, etc.). Inthis example, the cluster geo-location may comprise the samegeo-location as the respective POIs (e.g., businesses) in the data tags.

Returning to FIG. 2, at 216, the respective one or more data tags can beclustered at their respective cluster geo-locations. It may beappreciated that location data for a POI, data tag, etc., for example,in a planar panorama image may comprise a less than precise and/oraccurate location of the POI, data tag, etc. As an example, an addressof a business may not always align precisely with a physical location ofthe business in an image (e.g., and/or a digital map). That is, a POIgeo-location that is matched to a geo-location of a corresponding object(e.g., building) in an image may be slightly offset, misaligned, etc.from the object due to imprecisions and/or inaccuracies in theunderlying data. Accordingly, clustering as provided herein mayaccommodate for such imprecisions and/or inaccuracies to provide asatisfying user experience such as by providing approximate clusteringlocations. For example, a cluster geo-location located approximatelymidway between two (or more) POIs, data tags, etc. substantiallyobviates issues that may have arisen should the respective geo-locationsfor the POIs, data tags, etc. have been less than precise and/oraccurate (e.g., due to imprecisions and/or inaccuracies in theunderlying data). That is, because the POIs, data tags, etc. are locatedelsewhere from their respective geo-locations, issues related toimprecisions and/or inaccuracies of these geo-locations are renderedsubstantially moot. At 218, the one or more clustered data tags can berendered in the first view of the planar panorama image, such as at acorresponding geo-location. As an illustrative example, in FIG. 4A, afirst set of data tags are rendered at a first cluster geo-location 406Ain the planar panorama image 402, a second set of data tags are renderedat a second cluster geo-location 406B, a third set of data tags arerendered at a third cluster geo-location 406C, and so-on (e.g., forremaining cluster geo-locations 406D-406G).

In one embodiment, the clustering may be based at least upon the firstzoom level (e.g., comprising the view of the planar panorama 402 in FIG.4A). That is, for example, a zoomed-out view of the planar panorama,such as in FIG. 4A, combined with the display size of the respectivedata tags, may be used to determine how the data tags are clustered. Asone example, at cluster geo-location 406E, the geo-locations forQuinn's, Red's and Silvio's may be comprised within an area in theplanar panorama 402 that comprises the display size of the data tags(e.g., the businesses Quinn's, Red's and Silvio's are located in thespace covered by the display size of the tags). In this example, therespective data tags may overlap one another if they were not combinedat the cluster geo-location 406E.

In one embodiment, the clustering can comprise rendering one or moredata tags in a list form at or co-located with a corresponding clustergeo-location. As an illustrative example, in FIG. 4A, the data tags arerendered in list form at the respective cluster geo-locations 406 (A-G).Further, in one embodiment, one or more of the data tags may be renderedoutside of the planar panorama image. As an illustrative example, inFIG. 4A, the respective data tags are co-located outside of the planarpanorama image 402, at their corresponding cluster geo-locations 406(A-G).

In one embodiment, the clustering can comprise rendering the one or moredata tags in a non-list form, where the respective one or more data tagscan comprise a pointer to a corresponding cluster geo-location. Further,in one embodiment, the rendering can comprise locating at least aportion of the respective data tags, over the planar panorama image. Asan illustrative example, in FIG. 5, the example embodiment 500 comprisesthe planar panorama image 502, where data tags 508, 512, 514, 516, 518are rendered in a non-list form (e.g., text boxes, images, icons, textbubbles, etc.) at least partially over the planar panorama image 502,and where these data tags 508, 512, 514, 516, 518 respectively comprisea pointer to their corresponding geo-locations (e.g., clustergeo-location).

FIG. 3 is a flow diagram illustrating an example embodiment 300 whereone or more portions of one or more techniques described herein may beimplemented. At 302, image data 350 for a planar panorama image may bereceived, and an indication of a second zoom level 352 for the planarpanorama image can be received, at 304. As an illustrative example,FIGS. 4B and 4C illustrate example embodiments 430, 460 where one ormore portions of one or more techniques described herein may beimplemented. The example embodiment 430 may comprise an example of theplanar panorama image 432 “zoomed-in” from the first zoom level (e.g.,the planar panorama image 402 of FIG. 4A). Further, the exampleembodiment 430 may comprise an example of the planar panorama image 432“zoomed-out” from the planar panorama image 460 of FIG. 4C. That is, forexample, the second zoom level for the planar panorama image maycomprise a zoomed-in or zoomed-out view from a previous view (e.g., thefirst view of FIG. 2, or of FIG. 4C) of the planar panorama image.

Returning to FIG. 3, at 306, the received image data 350 and receivedindication of the second zoom level 352 may be used to identify a secondview for the planar panorama image. As an illustrative example, in FIG.4B, the planar panorama image 432 (e.g., the second view) comprises lessstreet side imagery 434 than in the image 402 of FIG. 4A. That is, inthis example, because the planar panorama image 432 comprises azoomed-in view, it comprise fewer objects, but more detail (e.g.,comprising a right two-thirds (approximately) of the street side imagery404 of FIG. 4A).

Returning to FIG. 3, at 308, POI data 354 for the second view of theplanar panorama image can be received. As an example, the POI data 354for the second view may comprise at least some (e.g., or all) of the POIdata from a first view (e.g., 254 of FIG. 2), particularly if the secondview comprises a zoomed in view from the first view (e.g., from 402 ofFIG. 4A to 432 of FIG. 4B). As another example, the POI data 354 for thesecond view may comprise more data than that of the first view, if thesecond view comprises a zoomed-out view from the first view (e.g., from462 of FIG. 4C to 432 of FIG. 4B). For example, as described above, thezoomed out view may comprise more street-side imagery (e.g., 434 of FIG.4B), comprising more objects, thereby potentially comprising more POIs.

At 310, one or more data tags for the second view of the planar panoramaimage can be created, and a geo-location for the respective one or moredata tags can be identified, at 312. At 314, second view clustergeo-locations may be determined, and the respective one or more datatags for the second view may be re-clustered at their correspondingcluster geo-locations at 316. As one example, re-clustering can compriseadding one or more data tags to a previous cluster of data tags, if thesecond zoom level is a zoomed-out view (e.g., comprising morestreet-level imagery in a similar space); or re-clustering can compriseseparating one or more data tags from a previous cluster of data tags,if the second zoom level is a zoomed-in view of the planar panoramaimage (e.g., comprising less street-level imagery in a similar space).

In one embodiment, at least a third data tag (e.g., and more) may bere-clustered with a first data tag and a second data tag at the clustergeo-location, where the second zoom level comprises a zooming-out fromthe first zoom level. In this embodiment, the first and second data tagsmay have been clustered together at the cluster geo-location in theplanar panorama imagery comprising the first zoom level. Further, thethird data may be re-clustered at the cluster geo-location if a firstgeo-location for the first data tag, a second geo-location for thesecond data tag, and the third geo-location for the third data tag aredisposed in an area of the planar panorama image that comprises a sizeof at least one of the data tags.

As an illustrative example, in FIGS. 4A, 4B, and 4C, the first zoomlevel may comprise the planar panorama image 432 of FIG. 4B, where afirst and second data tag, Quinn's and Red's respectively, are clusteredat a first cluster geo-location 436D. In this example, the second zoomlevel may comprise the (zoomed-out) planar panorama image 402 of FIG.4A, where a third data tag, Silvio's, is re-clustered at a secondcluster geo-location 406E, with the first and second data tags, Quinn'sand Red's. Further, in the example embodiment 400, the geo-location forSilvio's is comprised within the desired size of the data tags, Quinn'sand Red's, in the planar panorama image 402, and, therefore, Silvio's isalso re-clustered at the same cluster geo-location 406E as Quinn's andRed's.

In one embodiment, re-clustering can comprise locating the first datatag at the first geo-location and the second data tag at the secondgeo-location, if the second zoom level comprises a zooming-in from thefirst zoom level. Further, in this embodiment, the first data tag andthe second data tags can be re-clustered at their respectivegeo-locations if the first geo-location and the second geo-location arenot disposed in an area of the planar panorama image that comprises adesired size of the first data tag and/or the second data tag, forexample.

As an illustrative example, the first zoom level may comprise the planarpanorama image 432 of FIG. 4B, where the first and second data tags,Quinn's and Red's respectively, are clustered at the first clustergeo-location 436D. In this example, the second zoom level may comprisethe (zoomed-in) planar panorama image 462 of FIG. 4C, where the firstdata tag, Quinn's, is re-clustered at the first geo-location 466A, andthe second data tag Red's is re-clustered at the second geo-location466B. In this example, the respective first and second geo-locations466A, 466B are no longer comprised within the area covered by theother's data tags, and can therefore be separated.

Returning to FIG. 3, at 318, the one or more data tags can be renderedin the second view of the planar panorama image. As an illustrativeexample, in FIGS. 4B, the respective data tags are rendered at theircorresponding cluster geo-locations 436A-436G. In one embodiment, thedisplay to which the planar panorama image (e.g., 432) is rendered maynot be able to display the respective data tags clustered at a clustergeo-location. As an example, the cluster geo-location 436C comprisesfive data tags, and the respective cluster geo-locations 436F, 436Gcomprise three data tags. In this example, an indicator tag can beincluded at the cluster geo-location 436C, 436F, 436G that indicates toa user that the remaining, undisplayed data tags may be viewed byselecting the indicator tag. As an example, upon selecting the indicatortag, the respective data tags can be displayed over the planar panoramaimage 434.

As another illustrative example, in FIG. 4C, a zoomed-in view of theplanar panorama image 462 comprises the respective data tags at theircorresponding cluster geo-locations 466. In one embodiment, where merelyone data tag is clustered (e.g., or re-clustered) at a clustergeo-location, the cluster geo-location may correspond to thegeo-location for the POI data associated with the data tag. As anexample, the cluster geo-locations 466A-466G, comprising theircorresponding rendered data tags, correspond to the geo-location fromthe received POI for the data tag (e.g., the business location).

In one embodiment, the display size of one or more of the data tags maybe adjusted. Adjusting the display size can comprise reducing thedisplay size from a first zoom level (e.g., for the planar panoramaimage 462 of FIG. 4C) to a second zoom level (e.g., for the planarpanorama image 432 of FIG. 4B) if the second zoom level comprises azooming-out from the first zoom level. Further, adjusting the displaysize can comprise increasing the display size from a first zoom level(e.g., for the planar panorama image 432 of FIG. 4B) to a second zoomlevel (e.g., for the planar panorama image 462 of FIG. 4C) if the secondzoom level comprises a zooming-in from the first zoom level. Forexample, the display size of the data tags at the respectivegeo-locations 466 (A-G) in the planar panorama image 462 is larger(e.g., larger font) than the (relative) display size of the data tags atthe respective geo-locations 436 in the planar panorama 432 of FIG. 4B.

A system may be devised that provides for clustering and re-clusteringof point-of-interest (POI) data tags in a planar panorama image. POIdata tags may comprise information that allows a viewer of the planarpanorama image to distinguish or indentify a particular POI in theimage, for example, where the POI data tag is located relative to ageo-location of the POI in the image. When a zoom level of the image mayresult in overlapping POI data tags, and/or obscuring of data, the datatags can be (re)clustered at a common cluster geo-location, whichrepresents more than one geo-location. Further, when the image is zoomedin, the data tags may be re-clustered, and/or separated according totheir respective geo-locations in the image, for example.

FIG. 6 is a component diagram illustrating an exemplary system 600 forpositioning point-of-interest (POI) data in a planar panorama image. Inthe exemplary system 600, a computer-based processor 602, configured toprocess data for the system 600, is operably coupled with a data tagcreation component 604. The data tag creation component 604 isconfigured to create a first data tag 652, comprising at least a portionof received first POI data 650, and create a second data tag 652,comprising at least a portion of received second POI data 650.

In one embodiment, at least one of the first POI data and the second POIdata can comprise, among other things, an entity name (e.g., business,building, location, etc.) associated with a geo-location (e.g., anaddress, longitude, latitude, GPS coordinates, grid/map coordinates,etc.). Further, the POI data may comprise entity metadata (e.g.,descriptive information, contact information, etc.) for an entityassociated with a geo-location. Additionally, the POI data may compriseupdate entity metadata (e.g., online reviews, check-ins, likes, ratings,status, event notices, schedules, advertisements, etc.) for an entityassociated with a geo-location, and/or update location metadata (e.g.,status updates, check-ins, etc.) for a geo-location. It may beappreciated that some or all of the first POI data and/or the second POIdata may be received from an online network (e.g., the Internet).

In one embodiment, at least one of the first data tag and the seconddata tag can comprise, among other things, text comprising at least aportion of received POI data 650 associated with a data tag; an iconthat may be representative of at least a portion of the received POIdata 650 associated with a data tag; and/or an image that may berepresentative of at least a portion of the received POI data 650associated with a data tag. As an illustrative example, in FIG. 5, thereceived POI data may comprise an entity name, where the data tagcomprises text, such as Silvio's 508 and/or Tim's 506. Further, thereceived POI data may comprise update location metadata, such as areal-estate listing 516, comprising text. Additionally, the received POIdata may comprise entity metadata, such as a bus schedule for a bus-stop510, as an icon and text. Further, the received POI data may compriseupdate entity metadata, such as a text-based check-in 518 at Tim's 506,a text-based rating 514 at Val's, and/or an image uploaded 512 at Red's.

Returning to FIG. 6, the exemplary system 600 comprises a clusteringcomponent 606, which is operably coupled with the data tag creationcomponent 604. The clustering component 606 is configured to cluster thefirst data tag and second data tag 652 at a cluster geo-location in theplanar panorama image 654, where the cluster geo-location is based atleast upon a first geo-location, comprised in the first POI data 650,and a second geo-location, comprised in the second POI data 650. Thatis, for example, the clustered tags for the image 654 may be rendered ata same location in the planar panorama image, which is displayed to aviewer of the image.

FIG. 7 is a component diagram illustrating an example embodiment 700where one or more systems described herein may be implemented. In thisexample 700, an extension of FIG. 6 is provided and thus description ofelements, components, etc. described with respect to FIG. 6 may not berepeated for simplicity. In the example embodiment 700, a clusterlocation determination component 710 can be configured to identify acluster geo-location 758. In one embodiment, the cluster locationdetermination component 710 can identify the cluster geo-location 758 byidentifying a geo-location that may be disposed between a firstgeo-location and the second geo-location (e.g., approximately centeredbetween), if the first geo-location and the second geo-location aredifferent geo-locations. In one embodiment, the cluster locationdetermination component 710 can identify the cluster geo-location 758 byidentifying a geo-location that may be disposed at the firstgeo-location and the second geo-location, if the first geo-location andthe second geo-location are a same geo-location.

In one embodiment, the clustering component 606 can be configured tocluster 760 a first data tag and a second data tag 752 at the clustergeo-location 758 in the planar panorama image, from received image data762, based at least upon a received indication of a first zoom level756. Further, in one embodiment, the clustering component 606 cancomprise a re-clustering component 714 that is configured to re-cluster760 the first data tag and second data tag 752 based at least upon areceived indication of a second zoom level 756.

In the example embodiment 700, a cluster rendering component 712 can beconfigured to render a cluster comprising one or more data tags, forexample, corresponding to received POI data 750. The cluster cancomprise the one or more data tags 752, which can be rendered in aresulting planar panorama image 754. In one embodiment, the cluster cancomprise the one or more data tags in a list form at or co-located witha corresponding cluster geo-location (e.g., 406A of FIG. 4A). In oneembodiment, the cluster can comprise the one or more data tags in anon-list form, where the one or more data tags are located atcorresponding geo-locations. Further, in this embodiment, one or moredata tags can respectively comprise a pointer to correspondinggeo-locations in the planar panorama image (e.g., 508, 516, 518 of FIG.5).

In one embodiment, the cluster rendering, performed by the clusterrendering component 712, can comprise locating one or more data tagsoutside of the planar panorama image (e.g., 508 of FIG. 5). Further, inone embodiment, the cluster rendering can comprise locating one or moredata tags over the planar panorama image (e.g., 512, 518 of FIG. 5).

Still another embodiment involves a computer-readable medium comprisingprocessor-executable instructions configured to implement one or more ofthe techniques presented herein. An exemplary computer-readable mediumthat may be devised in these ways is illustrated in FIG. 8, wherein theimplementation 800 comprises a computer-readable medium 808 (e.g., aCD-R, DVD-R, or a platter of a hard disk drive), on which is encodedcomputer-readable data 806. This computer-readable data 806 in turncomprises a set of computer instructions 804 configured to operateaccording to one or more of the principles set forth herein. In one suchembodiment 802, the processor-executable instructions 804 may beconfigured to perform a method, such as at least some of the exemplarymethod 100 of FIG. 1, for example. In another such embodiment, theprocessor-executable instructions 804 may be configured to implement asystem, such as at least some of the exemplary system 600 of FIG. 6, forexample. Many such computer-readable media may be devised by those ofordinary skill in the art that are configured to operate in accordancewith the techniques presented herein.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

As used in this application, the terms “component,” “module,” “system”,“interface”, and the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a controller and the controller can be a component. One or morecomponents may reside within a process and/or thread of execution and acomponent may be localized on one computer and/or distributed betweentwo or more computers.

Furthermore, the claimed subject matter may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, those skilled inthe art will recognize many modifications may be made to thisconfiguration without departing from the scope or spirit of the claimedsubject matter.

FIG. 9 and the following discussion provide a brief, general descriptionof a suitable computing environment to implement embodiments of one ormore of the provisions set forth herein. The operating environment ofFIG. 9 is only one example of a suitable operating environment and isnot intended to suggest any limitation as to the scope of use orfunctionality of the operating environment. Example computing devicesinclude, but are not limited to, personal computers, server computers,hand-held or laptop devices, mobile devices (such as mobile phones,Personal Digital Assistants (PDAs), media players, and the like),multiprocessor systems, consumer electronics, mini computers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like.

Although not required, embodiments are described in the general contextof “computer readable instructions” being executed by one or morecomputing devices. Computer readable instructions may be distributed viacomputer readable media (discussed below). Computer readableinstructions may be implemented as program modules, such as functions,objects, Application Programming Interfaces (APIs), data structures, andthe like, that perform particular tasks or implement particular abstractdata types. Typically, the functionality of the computer readableinstructions may be combined or distributed as desired in variousenvironments.

FIG. 9 illustrates an example of a system 900 comprising a computingdevice 912 configured to implement one or more embodiments providedherein. In one configuration, computing device 912 includes at least oneprocessing unit 916 and memory 918. Depending on the exact configurationand type of computing device, memory 918 may be volatile (such as RAM,for example), non-volatile (such as ROM, flash memory, etc., forexample) or some combination of the two. This configuration isillustrated in FIG. 9 by dashed line 914.

In other embodiments, device 912 may include additional features and/orfunctionality. For example, device 912 may also include additionalstorage (e.g., removable and/or non-removable) including, but notlimited to, magnetic storage, optical storage, and the like. Suchadditional storage is illustrated in FIG. 9 by storage 920. In oneembodiment, computer readable instructions to implement one or moreembodiments provided herein may be in storage 920. Storage 920 may alsostore other computer readable instructions to implement an operatingsystem, an application program, and the like. Computer readableinstructions may be loaded in memory 918 for execution by processingunit 916, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 918 and storage 920 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired information and which can be accessed by device 912. Anysuch computer storage media may be part of device 912.

Device 912 may also include communication connection(s) 926 that allowsdevice 912 to communicate with other devices. Communicationconnection(s) 926 may include, but is not limited to, a modem, a NetworkInterface Card (NIC), an integrated network interface, a radio frequencytransmitter/receiver, an infrared port, a USB connection, or otherinterfaces for connecting computing device 912 to other computingdevices. Communication connection(s) 926 may include a wired connectionor a wireless connection. Communication connection(s) 926 may transmitand/or receive communication media.

The term “computer readable media” may include communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” may include a signal that has one or moreof its characteristics set or changed in such a manner as to encodeinformation in the signal.

Device 912 may include input device(s) 924 such as keyboard, mouse, pen,voice input device, touch input device, infrared cameras, video inputdevices, and/or any other input device. Output device(s) 922 such as oneor more displays, speakers, printers, and/or any other output device mayalso be included in device 912. Input device(s) 924 and output device(s)922 may be connected to device 912 via a wired connection, wirelessconnection, or any combination thereof. In one embodiment, an inputdevice or an output device from another computing device may be used asinput device(s) 924 or output device(s) 922 for computing device 912.

Components of computing device 912 may be connected by variousinterconnects, such as a bus. Such interconnects may include aPeripheral Component Interconnect (PCI), such as PCI Express, aUniversal Serial Bus (USB), firewire (IEEE 1394), an optical busstructure, and the like. In another embodiment, components of computingdevice 912 may be interconnected by a network. For example, memory 918may be comprised of multiple physical memory units located in differentphysical locations interconnected by a network.

Those skilled in the art will realize that storage devices utilized tostore computer readable instructions may be distributed across anetwork. For example, a computing device 930 accessible via network 928may store computer readable instructions to implement one or moreembodiments provided herein. Computing device 912 may access computingdevice 930 and download a part or all of the computer readableinstructions for execution. Alternatively, computing device 912 maydownload pieces of the computer readable instructions, as needed, orsome instructions may be executed at computing device 912 and some atcomputing device 930.

Various operations of embodiments are provided herein. In oneembodiment, one or more of the operations described may constitutecomputer readable instructions stored on one or more computer readablemedia, which if executed by a computing device, will cause the computingdevice to perform the operations described. The order in which some orall of the operations are described should not be construed as to implythat these operations are necessarily order dependent. Alternativeordering will be appreciated by one skilled in the art having thebenefit of this description. Further, it will be understood that not alloperations are necessarily present in each embodiment provided herein.

Moreover, the word “exemplary” is used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as advantageousover other aspects or designs. Rather, use of the word exemplary isintended to present concepts in a concrete fashion. As used in thisapplication, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or”. That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. Further, At least one of A and B and/or thelike generally means A or B or both A and B. In addition, the articles“a” and “an” as used in this application and the appended claims maygenerally be construed to mean “one or more” unless specified otherwiseor clear from context to be directed to a singular form.

Also, although the disclosure has been shown and described with respectto one or more implementations, equivalent alterations and modificationswill occur to others skilled in the art based upon a reading andunderstanding of this specification and the annexed drawings. Thedisclosure includes all such modifications and alterations and islimited only by the scope of the following claims. In particular regardto the various functions performed by the above described components(e.g., elements, resources, etc.), the terms used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., that is functionally equivalent), even though notstructurally equivalent to the disclosed structure which performs thefunction in the herein illustrated exemplary implementations of thedisclosure. In addition, while a particular feature of the disclosuremay have been disclosed with respect to only one of severalimplementations, such feature may be combined with one or more otherfeatures of the other implementations as may be desired and advantageousfor any given or particular application. Furthermore, to the extent thatthe terms “includes”, “having”, “has”, “with”, or variants thereof areused in either the detailed description or the claims, such terms areintended to be inclusive in a manner similar to the term “comprising.”

What is claimed is:
 1. A computer-based method for positioningpoint-of-interest (POI) data in a planar panorama image, comprising:receiving first POI data, comprising a first geo-location, and secondPOI data, comprising a second geo-location; creating a first data tag,comprising at least a portion of the first POI data, and a second datatag, comprising at least a portion of the second POI data; andclustering the first data tag and second data tag at a clustergeo-location in the planar panorama image, the cluster geo-locationbased at least upon the first geo-location and the second geo-location,at least a portion of the clustering performed by a processing unit. 2.The method of claim 1, comprising determining the cluster geo-locationcomprising one or more of: identifying a geo-location disposed betweenthe first geo-location and the second geo-location, if the firstgeo-location and the second geo-location comprise differentgeo-locations; and identifying a geo-location disposed at the firstgeo-location and the second geo-location, if the first geo-location andthe second geo-location comprise a same geo-location.
 3. The method ofclaim 1, comprising one or more of: receiving an indication of a firstzoom level for the planar panorama image; and receiving an indication ofa second zoom level for the planar panorama image.
 4. The method ofclaim 3 the clustering based at least upon the first zoom level.
 5. Themethod of claim 3 comprising re-clustering the first data tag and seconddata tag based at least upon the second zoom level.
 6. The method ofclaim 5, re-clustering comprising clustering at least a third data tagwith the first data tag and the second data tag at the clustergeo-location, the third data tag comprising at least a portion of thirdPOI data, the third POI data comprising a third geo-location, if atleast one or more of: the second zoom level comprises a zooming-out fromthe first zoom level; and the first geo-location, the secondgeo-location and the third geo-location are disposed in an area of theplanar panorama image comprising a desired size of at least one of thefirst data tag, the second data tag and the third data tag.
 7. Themethod of claim 5, re-clustering comprising locating the first data tagat the first geo-location and the second data tag at the secondgeo-location if at least one or more of: the second zoom level comprisesa zooming-in from the first zoom level; and the first geo-location andthe second geo-location are not disposed in an area of the planarpanorama image comprising a desired size of at one of the first data tagand the second data tag.
 8. The method of claim 1, clustering comprisingone or more of: rendering the first data tag and the second data tag ina list form at the cluster geo-location; and rendering the first datatag and the second data tag in a non-list form, at least one of thefirst data tag and the second data tag comprising a pointer to thecluster geo-location.
 9. The method of claim 8, at least one of therendering in a list form and the rendering in a non-list form comprisingone or more of: locating at least one of at least a portion of the firstdata tag and at least a portion of the second data tag outside of theplanar panorama image; and locating at least one of at least a portionof the first data tag and at least a portion of the second data tag overthe planar panorama image.
 10. The method of claim 1, comprisingdetermining a display size of at least one of the first data tag and thesecond data tag based at least upon one or more of the first POI dataand the second POI data.
 11. The method of claim 1, comprising at leastone of: accommodating, via the clustering, at least one of imprecisionsand inaccuracies in underlying data; and determining a display size ofat least one of the first data tag and the second data tag based atleast upon a desired tag window size.
 12. The method of claim 1,comprising adjusting the display size of at least one of the first datatag and the second data tag comprising one or more of: increasing thedisplay size from a first zoom level to a second zoom level if thesecond zoom level comprises a zooming-in from the first zoom level; anddecreasing the display size from the first zoom level to the second zoomlevel if the second zoom level comprises a zooming-out from the firstzoom level.
 13. A system for positioning point-of-interest (POI) data ina planar panorama image, comprising: a computer-based processorconfigured to process data for the system; a data tag creationcomponent, operably coupled with the processor, configured to create afirst data tag, comprising at least a portion of received first POIdata, and create a second data tag, comprising at least a portion ofreceived second POI data; and a clustering component, operably coupledwith the data tag creation component, configured to cluster the firstdata tag and second data tag at a cluster geo-location in the planarpanorama image, the cluster geo-location based at least upon a firstgeo-location, comprised in the first POI data, and a secondgeo-location, comprised in the second POI data.
 14. The system of claim13, at least one of the first POI data and the second POI datacomprising one or more of: an entity name associated with ageo-location; entity metadata for an entity associated with ageo-location; update entity metadata for an entity associated with ageo-location, the update entity metadata received from an onlinenetwork; and update location metadata for a geo-location, the updatelocation metadata received from an online network.
 15. The system ofclaim 13, at least one of the first data tag and the second data tagcomprising one or more of: text comprising at least a portion of POIdata; an icon representative of at least a portion of POI data; and animage representative of at least a portion of POI data.
 16. The systemof claim 13, comprising a cluster location determination componentconfigured to identify the cluster geo-location, comprising one or moreof: identifying a geo-location disposed between the first geo-locationand the second geo-location, if the first geo-location and the secondgeo-location comprise different geo-locations; and identifying ageo-location disposed at the first geo-location and the secondgeo-location, if the first geo-location and the second geo-locationcomprise a same geo-location.
 17. The system of claim 13, the clusteringcomponent configured to cluster the first data tag and the second datatag at the cluster geo-location in the planar panorama image based atleast upon a received indication of a first zoom level.
 18. The systemof claim 17, comprising a re-clustering component configured tore-cluster the first data tag and second data tag based at least upon areceived indication of a second zoom level.
 19. The system of claim 13,comprising a cluster rendering component configured to render a clustercomprising one or more data tags, the cluster comprising one or more of:the one or more data tags in a list form co-located with the clustergeo-location; and the one or more data tags in a non-list formrespectively comprising pointers to corresponding geo-locations.
 20. Acomputer readable medium comprising computer executable instructionsthat when executed via a processor perform a method for positioningpoint-of-interest (POI) data in a planar panorama image, comprising:receiving first POI data, comprising a first geo-location, and secondPOI data, comprising a second geo-location; creating a first data tag,comprising at least a portion of the first POI data, and a second datatag, comprising at least a portion of the second POI data; clusteringthe first data tag and second data tag at a cluster geo-location in theplanar panorama image, the cluster geo-location based at least upon thefirst geo-location and the second geo-location; receiving an indicationof a zoom operation from a first zoom level to a second zoom level forthe planar panorama image; and re-clustering the first data tag andsecond data tag based at least upon the zoom operation.